import { defineMock } from './base'

export default defineMock([
  {
    url: 'users/me',
    method: ['GET'],
    body: {
      code: '00000',
      data: {
        userId: 2,
        nickname: '系统管理员',
        username: 'admin',
        avatar:
          'https://oss.youlai.tech/youlai-boot/2023/05/16/811270ef31f548af9cffc026dfc3777b.gif',
        roles: ['ROOT'],
        perms: [
          'sys:menu:delete',
          'sys:dept:edit',
          'sys:dict_type:add',
          'sys:dict:edit',
          'sys:dict:delete',
          'sys:dict_type:edit',
          'sys:menu:add',
          'sys:user:add',
          'sys:role:edit',
          'sys:dept:delete',
          'sys:user:edit',
          'sys:user:delete',
          'sys:user:password:reset',
          'sys:dept:add',
          'sys:role:delete',
          'sys:dict_type:delete',
          'sys:menu:edit',
          'sys:dict:add',
          'sys:role:add',
          'sys:user:query',
          'sys:user:export',
        ],
      },
      msg: '一切ok',
    },
  },

  {
    url: 'users/page',
    method: ['GET'],
    body: {
      code: '00000',
      data: {
        list: [
          {
            id: 2,
            username: 'admin',
            nickname: '系统管理员',
            mobile: '17621210366',
            gender: 1,
            avatar:
              'https://oss.youlai.tech/youlai-boot/2023/05/16/811270ef31f548af9cffc026dfc3777b.gif',
            email: '',
            status: 1,
            deptId: 1,
            roleIds: [2],
          },
          {
            id: 3,
            username: 'test',
            nickname: '测试小用户',
            mobile: '17621210366',
            gender: 1,
            avatar:
              'https://oss.youlai.tech/youlai-boot/2023/05/16/811270ef31f548af9cffc026dfc3777b.gif',
            email: 'youlaitech@163.com',
            status: 1,
            deptId: 3,
            roleIds: [3],
          },
        ],
        total: 2,
      },
      msg: '一切ok',
    },
  },

  // 新增用户
  {
    url: 'users',
    method: ['POST'],
    body({ body }) {
      return {
        code: '00000',
        data: null,
        msg: `新增用户${body.nickname}成功`,
      }
    },
  },

  // 获取用户表单数据
  {
    url: 'users/:userId/form',
    method: ['GET'],
    body: ({ params }) => {
      return {
        code: '00000',
        data: userMap[params.userId],
        msg: '一切ok',
      }
    },
  },
  // 修改用户
  {
    url: 'users/:userId',
    method: ['PUT'],
    body({ body }) {
      return {
        code: '00000',
        data: null,
        msg: `修改用户${body.nickname}成功`,
      }
    },
  },

  // 删除用户
  {
    url: 'users/:userId',
    method: ['DELETE'],
    body({ params }) {
      return {
        code: '00000',
        data: null,
        msg: `删除用户${params.id}成功`,
      }
    },
  },

  // 重置密码
  {
    url: 'users/:userId/password',
    method: ['PATCH'],
    body({ query }) {
      return {
        code: '00000',
        data: null,
        msg: `重置密码成功，新密码为：${query.password}`,
      }
    },
  },

  // 导出Excel
  {
    url: 'users/_export',
    method: ['GET'],
    headers: {
      'Content-Disposition':
        'attachment; filename=%E7%94%A8%E6%88%B7%E5%88%97%E8%A1%A8.xlsx',
      'Content-Type':
        'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
    },
  },
])

// 用户映射表数据
const userMap: Record<string, any> = {
  2: {
    id: 2,
    username: 'admin',
    nickname: '系统管理员',
    mobile: '17621210366',
    gender: 1,
    avatar:
      'https://oss.youlai.tech/youlai-boot/2023/05/16/811270ef31f548af9cffc026dfc3777b.gif',
    email: '',
    status: 1,
    deptId: 1,
    roleIds: [2],
  },
  3: {
    id: 3,
    username: 'test',
    nickname: '测试小用户',
    mobile: '17621210366',
    gender: 1,
    avatar:
      'https://oss.youlai.tech/youlai-boot/2023/05/16/811270ef31f548af9cffc026dfc3777b.gif',
    email: 'youlaitech@163.com',
    status: 1,
    deptId: 3,
    roleIds: [3],
  },
}
